Micron Document
NexusPi Git Node


Displaying Raw • Download

lib/microReticulum/src/Resource.cpp copilot/add-rtnode-configuration-options (9529fa8a) Text, 3.21 KB

Tff7b72#Tff7b72include T8b949e"Resource.h"

Tff7b72#Tff7b72include T8b949e"ResourceData.h"
Tff7b72#Tff7b72include T8b949e"Reticulum.h"
Tff7b72#Tff7b72include T8b949e"Transport.h"
Tff7b72#Tff7b72include T8b949e"Packet.h"
Tff7b72#Tff7b72include T8b949e"Log.h"

Tff7b72#Tff7b72include T8b949e<algorithm>

Tff7b72using Tff7b72namespace T7ee787RNSTb4b4b4;
Tff7b72using Tff7b72namespace T7ee787RNSTff7b72:Tff7b72:T7ee787TypeTff7b72:Tff7b72:T7ee787ResourceTb4b4b4;
Tff7b72using Tff7b72namespace T7ee787RNSTff7b72:Tff7b72:T7ee787UtilitiesTb4b4b4;

T8b949e//Resource::Resource(const Link& link /*= {Type::NONE}*/) :
T8b949e// _object(new ResourceData(link))
T8b949e//{
T8b949e// assert(_object);
T8b949e// MEM("Resource object created");
T8b949e//}

Te6edf3ResourceTff7b72:Tff7b72:Te6edf3ResourceTb4b4b4(Tff7b72const Te6edf3BytesTff7b72& Te6edf3dataTb4b4b4, Tff7b72const Te6edf3LinkTff7b72& Te6edf3linkTb4b4b4, Tff7b72const Te6edf3BytesTff7b72& Te6edf3request_idTb4b4b4, Tffa657bool Te6edf3is_responseTb4b4b4, Tffa657double Te6edf3timeoutTb4b4b4) Tff7b72:
Te6edf3_objectTb4b4b4(Tff7b72new Te6edf3ResourceDataTb4b4b4(Te6edf3linkTb4b4b4)Tb4b4b4)
Tb4b4b4{
Te6edf3assertTb4b4b4(Te6edf3_objectTb4b4b4)Tb4b4b4;
Te6edf3MEMTb4b4b4(Ta5d6ff"Ta5d6ffResource object createdTa5d6ff"Tb4b4b4)Tb4b4b4;
Tb4b4b4}

Te6edf3ResourceTff7b72:Tff7b72:Te6edf3ResourceTb4b4b4(Tff7b72const Te6edf3BytesTff7b72& Te6edf3dataTb4b4b4, Tff7b72const Te6edf3LinkTff7b72& Te6edf3linkTb4b4b4, Tffa657bool Te6edf3advertise T8b949e/*= true*/Tb4b4b4, Tffa657bool Te6edf3auto_compress T8b949e/*= true*/Tb4b4b4, Te6edf3CallbacksTff7b72:Tff7b72:Te6edf3concluded Te6edf3callback T8b949e/*= nullptr*/Tb4b4b4, Te6edf3CallbacksTff7b72:Tff7b72:Te6edf3progress Te6edf3progress_callback T8b949e/*= nullptr*/Tb4b4b4, Tffa657double Te6edf3timeout T8b949e/*= 0.0*/Tb4b4b4, Tffa657int Te6edf3segment_index T8b949e/*= 1*/Tb4b4b4, Tff7b72const Te6edf3BytesTff7b72& Te6edf3original_hash T8b949e/*= {Type::NONE}*/Tb4b4b4, Tff7b72const Te6edf3BytesTff7b72& Te6edf3request_id T8b949e/*= {Type::NONE}*/Tb4b4b4, Tffa657bool Te6edf3is_response T8b949e/*= false*/Tb4b4b4) Tff7b72:
Te6edf3_objectTb4b4b4(Tff7b72new Te6edf3ResourceDataTb4b4b4(Te6edf3linkTb4b4b4)Tb4b4b4)
Tb4b4b4{
Te6edf3assertTb4b4b4(Te6edf3_objectTb4b4b4)Tb4b4b4;
Te6edf3MEMTb4b4b4(Ta5d6ff"Ta5d6ffResource object createdTa5d6ff"Tb4b4b4)Tb4b4b4;
Tb4b4b4}


Tffa657void Te6edf3ResourceTff7b72:Tff7b72:Te6edf3validate_proofTb4b4b4(Tff7b72const Te6edf3BytesTff7b72& Te6edf3proof_dataTb4b4b4) Tb4b4b4{
Tb4b4b4}

Tffa657void Te6edf3ResourceTff7b72:Tff7b72:Te6edf3cancelTb4b4b4(Tb4b4b4) Tb4b4b4{
Tb4b4b4}

T8b949e/*
:returns: The current progress of the resource transfer as a *float* between 0.0 and 1.0.
*/
Tffa657float Te6edf3ResourceTff7b72:Tff7b72:Te6edf3get_progressTb4b4b4(Tb4b4b4) Tff7b72const Tb4b4b4{
T8b949e/*
assert(_object);
if (_object->_initiator) {
_object->_processed_parts = (_object->_segment_index-1)*math.ceil(Type::Resource::MAX_EFFICIENT_SIZE/Type::Resource::SDU);
_object->_processed_parts += _object->sent_parts;
_object->_progress_total_parts = float(_object->grand_total_parts);
}
else {
_object->_processed_parts = (_object->_segment_index-1)*math.ceil(Type::Resource::MAX_EFFICIENT_SIZE/Type::Resource::SDU);
_object->_processed_parts += _object->_received_count;
if (_object->split) {
_object->progress_total_parts = float(math.ceil(_object->total_size/Type::Resource::SDU));
}
else {
_object->progress_total_parts = float(_object->total_parts);
}
}

return (float)_object->processed_parts / (float)_object->progress_total_parts;
*/
Tff7b72return T79c0ff0.0Tb4b4b4;
Tb4b4b4}

Tffa657void Te6edf3ResourceTff7b72:Tff7b72:Te6edf3set_concluded_callbackTb4b4b4(Te6edf3CallbacksTff7b72:Tff7b72:Te6edf3concluded Te6edf3callbackTb4b4b4) Tb4b4b4{
Te6edf3assertTb4b4b4(Te6edf3_objectTb4b4b4)Tb4b4b4;
Te6edf3_objectTff7b72-Tff7b72>Te6edf3_callbacksTb4b4b4.Te6edf3_concluded Tff7b72= Te6edf3callbackTb4b4b4;
Tb4b4b4}

Tffa657void Te6edf3ResourceTff7b72:Tff7b72:Te6edf3set_progress_callbackTb4b4b4(Te6edf3CallbacksTff7b72:Tff7b72:Te6edf3progress Te6edf3callbackTb4b4b4) Tb4b4b4{
Te6edf3assertTb4b4b4(Te6edf3_objectTb4b4b4)Tb4b4b4;
Te6edf3_objectTff7b72-Tff7b72>Te6edf3_callbacksTb4b4b4.Te6edf3_progress Tff7b72= Te6edf3callbackTb4b4b4;
Tb4b4b4}


Te6edf3stdTff7b72:Tff7b72:Te6edf3string Te6edf3ResourceTff7b72:Tff7b72:Te6edf3toStringTb4b4b4(Tb4b4b4) Tff7b72const Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3_objectTb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"Ta5d6ff"Tb4b4b4;
Tb4b4b4}
T8b949e//return "<"+RNS.hexrep(self.hash,delimit=False)+"/"+RNS.hexrep(self.link.link_id,delimit=False)+">"
T8b949e//return "{Resource:" + _object->_hash.toHex() + "}";
Tff7b72return Ta5d6ff"Ta5d6ff{Resource: unknown}Ta5d6ff"Tb4b4b4;
Tb4b4b4}

T8b949e// getters
Tff7b72const Te6edf3BytesTff7b72& Te6edf3ResourceTff7b72:Tff7b72:Te6edf3hashTb4b4b4(Tb4b4b4) Tff7b72const Tb4b4b4{
Te6edf3assertTb4b4b4(Te6edf3_objectTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3_objectTff7b72-Tff7b72>Te6edf3_hashTb4b4b4;
Tb4b4b4}

Tff7b72const Te6edf3BytesTff7b72& Te6edf3ResourceTff7b72:Tff7b72:Te6edf3request_idTb4b4b4(Tb4b4b4) Tff7b72const Tb4b4b4{
Te6edf3assertTb4b4b4(Te6edf3_objectTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3_objectTff7b72-Tff7b72>Te6edf3_request_idTb4b4b4;
Tb4b4b4}

Tff7b72const Te6edf3BytesTff7b72& Te6edf3ResourceTff7b72:Tff7b72:Te6edf3dataTb4b4b4(Tb4b4b4) Tff7b72const Tb4b4b4{
Te6edf3assertTb4b4b4(Te6edf3_objectTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3_objectTff7b72-Tff7b72>Te6edf3_dataTb4b4b4;
Tb4b4b4}

Tff7b72const Te6edf3TypeTff7b72:Tff7b72:Te6edf3ResourceTff7b72:Tff7b72:Te6edf3status Te6edf3ResourceTff7b72:Tff7b72:Te6edf3statusTb4b4b4(Tb4b4b4) Tff7b72const Tb4b4b4{
Te6edf3assertTb4b4b4(Te6edf3_objectTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3_objectTff7b72-Tff7b72>Te6edf3_statusTb4b4b4;
Tb4b4b4}

Tff7b72const Tffa657size_t Te6edf3ResourceTff7b72:Tff7b72:Te6edf3sizeTb4b4b4(Tb4b4b4) Tff7b72const Tb4b4b4{
Te6edf3assertTb4b4b4(Te6edf3_objectTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3_objectTff7b72-Tff7b72>Te6edf3_sizeTb4b4b4;
Tb4b4b4}

Tff7b72const Tffa657size_t Te6edf3ResourceTff7b72:Tff7b72:Te6edf3total_sizeTb4b4b4(Tb4b4b4) Tff7b72const Tb4b4b4{
Te6edf3assertTb4b4b4(Te6edf3_objectTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3_objectTff7b72-Tff7b72>Te6edf3_total_sizeTb4b4b4;
Tb4b4b4}

T8b949e// setters

Served by rngit 1.4.2 - Generated in 0.02s